www.gusucode.com > PHP版金融投资类企业PHP源码程序 > PHP版金融投资类企业/公司网站系统源码 v1.0/IVEARS_v1.0/IVEARS_v1.0/ThinkPHP/Extend/Engine/Sae/SaeImit/SaeCounter.class.php
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- // | Copyright (c) 2010 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: luofei614 <www.3g4k.com> // +---------------------------------------------------------------------- // $Id: SaeCounter.class.php 2766 2012-02-20 15:58:21Z luofei614@gmail.com $ /** * SaeCounter模拟器 * 使用了数据库存储统计器信息, * 相关数据表:think_sae_counter */ class SaeCounter extends SaeObject { //创建统计器 public function create($name, $value=0) { //判断是否存在 if ($this->exists($name)) return false; return self::$db->runSql("insert into sae_counter(name,val) values('$name','$value')"); } //减法 public function decr($name, $value=1) { if (!$this->exists($name)) return false; self::$db->runSql("update sae_counter set val=val-$value where name='$name'"); return self::$db->getVar("select val from sae_counter where name='$name'"); } //是否存在 public function exists($name) { $num = self::$db->getVar("select count(*) from sae_counter where name='$name'"); return $num != 0 ? true : false; } public function get($name) { if (!$this->exists($name)) return false; return self::$db->getVar("select val from sae_counter where name='$name'"); } public function getall() { $data = self::$db->getData("select * from sae_counter where name='$name'"); $ret = array(); foreach ($data as $r) { $ret[$r['name']] = $r['val']; } return $ret; } //加法 public function incr($name, $value=1) { if (!$this->exists($name)) return false; self::$db->runSql("update sae_counter set val=val+$value where name='$name'"); return self::$db->getVar("select val from sae_counter where name='$name'"); } public function length() { return self::$db->getVar("select count(*) from sae_counter"); } //获得多个统计器,names为数组 public function mget($names) { array_walk($names, function(&$name) { $name = "'$name'"; }); $where = implode(',', $names); $data = self::$db->getData("select * from sae_counter where name in($where)"); $ret = array(); foreach ($data as $r) { $ret[$r['name']] = $r['val']; } return $ret; } public function remove($name) { if (!$this->exists($name)) return false; return self::$db->runSql("delete from sae_counter where name='$name'"); } //设置值 public function set($name, $value) { return self::$db->runSql("update sae_counter set val='$value' where name='$name'"); } } ?>